package tedu.api.collection;

import java.util.ArrayList;
import java.util.List;

public class SubListDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for(int i=0;i<10;i++){
            list.add(i*10);
        }
        System.out.println("原："+list);

        //list提供了获取子集的操作：List subList(int start,int end):含头不含尾
        List<Integer> subList = list.subList(3,8);
        System.out.println("subList:"+subList);

        //子集扩大10倍输出
        for(int i=0;i<subList.size();i++){
            subList.set(i,subList.get(i)*10);
        }
        System.out.println("subList*10:"+subList);

        /**
         * 注意：对子集的操作就是对原集合对应的元素操作
         */
        System.out.println("subList()后list："+list);

        System.out.println("-------------");
        list.set(3,1000);//将原集合下标为3的元素的数据修改为1000
        System.out.println("list:"+list);
        //原集合数据改变后，子集数据跟着变了
        System.out.println("subList:"+subList);

        /**
         * 原集合长度修改之后，子集将不能进行任何操作，
         * 操作则范亨异常，但是可以重新获取子集
         */
        /*System.out.println("----------");
        list.remove(0);
        System.out.println("list:"+list);
        System.out.println("subList:"+subList);//运行时发生不支持修改异常*/


    }
}










